﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Xml;
using System.IO;
using System.Xml.Xsl;
using System.Xml.XPath;
using System.Collections;


namespace Siser.Web.Models
{
    public class ReporteAmbiental
    {
        public void CrearReporteVacioAmb(string path,string fecha_generacion)
        {
            XmlTextWriter reporte1 = new XmlTextWriter(path, System.Text.Encoding.UTF8);
            reporte1.Formatting = Formatting.Indented;
            reporte1.Indentation = 2;
            reporte1.WriteStartDocument(false);
            reporte1.WriteComment("XML reporte Ambiental");
            reporte1.WriteStartElement("CuerpoInforme");
            reporte1.WriteStartElement("CabeceraInforme");
            reporte1.WriteEndElement();
            reporte1.WriteStartElement("AntecedentesPM");
            reporte1.WriteEndElement();
            reporte1.WriteEndElement();
            reporte1.Close();
        }


        public void llenar_reporteAmb(string path,string fecha_genercion, ArrayList estadisticas, string fechaI, string fechaF, string ms, string ms1, string ms2, string ms3, string ms4) // SE CAMBIO INFOREPORTE POR REPORTE SEPRO
        {
            XmlDocument reporteAmbiental;
            XmlNode padre;
            XmlNode actual;

            reporteAmbiental = new XmlDocument();
            reporteAmbiental.Load(path);
            padre = reporteAmbiental.DocumentElement;
            actual = padre.FirstChild;
            XmlElement datoscabecera = reporteAmbiental.CreateElement("intro");
            datoscabecera.InnerXml = "<Titulo></Titulo>" +
                                      "<FechaReporte></FechaReporte>" +
                                      "<PeriodoMedicion></PeriodoMedicion>";

            datoscabecera.AppendChild(reporteAmbiental.CreateWhitespace("\r\n"));
            datoscabecera["Titulo"].InnerText = "Informe Mediciones Ambientales.";
            datoscabecera["FechaReporte"].InnerText = fecha_genercion;
            datoscabecera["PeriodoMedicion"].InnerText = fechaI + "al " + fechaF;
            actual.InsertAfter(datoscabecera, actual.LastChild);


            foreach (CReporteAmbiental info_dato in estadisticas)
            {
                actual = padre.FirstChild.NextSibling;
                XmlElement DatosTablaUbicacion = reporteAmbiental.CreateElement("DatosPuntos");
                DatosTablaUbicacion.InnerXml = "<Area></Area>" +
                                                "<IdEquipo></IdEquipo>" +
                                                "<Maximo></Maximo>" +
                                                "<Minimo></Minimo>" +
                                                "<Desviacion></Desviacion>" +
                                                "<TotalDatos></TotalDatos>" +
                                                "<Promedio></Promedio>" +
                                                "<Varianza></Varianza>";


                DatosTablaUbicacion.AppendChild(reporteAmbiental.CreateWhitespace("\r\n"));
                DatosTablaUbicacion["Area"].InnerText = info_dato.area.ToString();
                DatosTablaUbicacion["IdEquipo"].InnerText = info_dato.equipo_id;
                DatosTablaUbicacion["Maximo"].InnerText = info_dato.maximo;
                DatosTablaUbicacion["Minimo"].InnerText = info_dato.minimo;
                DatosTablaUbicacion["Desviacion"].InnerText = info_dato.desviacion;
                DatosTablaUbicacion["TotalDatos"].InnerText = info_dato.num_muestra;
                DatosTablaUbicacion["Promedio"].InnerText = info_dato.periodo;
                DatosTablaUbicacion["Varianza"].InnerText = info_dato.varianza;
                actual.InsertAfter(DatosTablaUbicacion, actual.LastChild);
            }

            actual = padre.FirstChild.NextSibling;
            XmlElement Rutas = reporteAmbiental.CreateElement("RutasGraficos");
            Rutas.InnerXml =                "<Ruta1></Ruta1>" +
                                            "<Ruta2></Ruta2>" +
                                            "<Ruta3></Ruta3>" +
                                            "<Ruta4></Ruta4>" +
                                            "<Ruta5></Ruta5>";


            Rutas.AppendChild(reporteAmbiental.CreateWhitespace("\r\n"));
            Rutas["Ruta1"].InnerText = ms.ToString();
            Rutas["Ruta2"].InnerText = ms1.ToString();
            Rutas["Ruta3"].InnerText = ms2.ToString();
            Rutas["Ruta4"].InnerText = ms3.ToString();
            Rutas["Ruta5"].InnerText = ms4.ToString();
            
            actual.InsertAfter(Rutas, actual.LastChild);


            XmlTextWriter GrabarRegistros = new XmlTextWriter(path, System.Text.Encoding.UTF8);
            reporteAmbiental.WriteTo(GrabarRegistros);
            GrabarRegistros.Close();

        }






    }
}